feat(keymap): gaming layers + joystick launcher#19
Merged
Conversation
Adds 5 new layers — GAME_PICK launcher + GAME_MC / GAME_LOL / GAME_DOOM / GAME_CS2 — entered from SYS via the joystick center key. Why: dedicated game layers bypass HRM / hold-tap entirely so WASD, SPACE, SHIFT, CTRL behave as pure keys during play. The 4-way joystick cluster becomes a launcher (UP/DN/LT/RT pick a game, center cancels), reusing the same physical key family for entry, selection, and cancel. Cross-game chassis: - Plain WASD/QWER on left half, plain QWERTY letters on right half so chat works without leaving game mode. - LCTRL @ pos 39 (pinky) — sprint/crouch, unified across MC/Doom/CS2/LoL. - LSHIFT @ pos 57 — sneak/walk on the strongest left thumb position. - SPACE on both thumbs (pos 56 + 59). - BSPC @ pos 60 for chat correction. LALT @ pos 61. F13 @ pos 62 for PTT. - Joystick = audio cluster: VOL+ / VOL- / MUTE / play-pause + center ENTER. - mo MEDIA on right thumb (pos 63) preserved. Per-game variants are intentionally minimal: pos 0 is F3 (debug) on MC and ` (console) on LoL/Doom/CS2. The four games are separated so the OLED display-name and per-game RGB underglow color make the active mode obvious. RGB feedback: each game-entry macro turns on the underglow and sets a solid color via RGB_COLOR_HSB — green for MC, gold for LoL, red for Doom, blue for CS2. The exit combo turns the underglow back off. Exit / re-pick combos (positions 0+12 and 0+5, scoped to layers 6-9): top corners are physically far apart so they can't fire during gameplay but are easy to do deliberately. Modeled on the existing softoff combo pattern. SYS layer pos 58 (was &mkp LCLK, dead-weight duplicate of NAV's LCLK) becomes &to 5 — the GAME_PICK entry point. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Owner
Author
Implementation summaryImplemented per the locked design in #11. Branch: Files touched:
Non-obvious choices:
Awaiting: CI build artifacts, then v2.0.0 pre-release. |
github-actions Bot
pushed a commit
that referenced
this pull request
Apr 11, 2026
… (#19) Adds 5 new layers — GAME_PICK launcher + GAME_MC / GAME_LOL / GAME_DOOM / GAME_CS2 — entered from SYS via the joystick center key. Why: dedicated game layers bypass HRM / hold-tap entirely so WASD, SPACE, SHIFT, CTRL behave as pure keys during play. The 4-way joystick cluster becomes a launcher (UP/DN/LT/RT pick a game, center cancels), reusing the same physical key family for entry, selection, and cancel. Cross-game chassis: - Plain WASD/QWER on left half, plain QWERTY letters on right half so chat works without leaving game mode. - LCTRL @ pos 39 (pinky) — sprint/crouch, unified across MC/Doom/CS2/LoL. - LSHIFT @ pos 57 — sneak/walk on the strongest left thumb position. - SPACE on both thumbs (pos 56 + 59). - BSPC @ pos 60 for chat correction. LALT @ pos 61. F13 @ pos 62 for PTT. - Joystick = audio cluster: VOL+ / VOL- / MUTE / play-pause + center ENTER. - mo MEDIA on right thumb (pos 63) preserved. Per-game variants are intentionally minimal: pos 0 is F3 (debug) on MC and ` (console) on LoL/Doom/CS2. The four games are separated so the OLED display-name and per-game RGB underglow color make the active mode obvious. RGB feedback: each game-entry macro turns on the underglow and sets a solid color via RGB_COLOR_HSB — green for MC, gold for LoL, red for Doom, blue for CS2. The exit combo turns the underglow back off. Exit / re-pick combos (positions 0+12 and 0+5, scoped to layers 6-9): top corners are physically far apart so they can't fire during gameplay but are easy to do deliberately. Modeled on the existing softoff combo pattern. SYS layer pos 58 (was &mkp LCLK, dead-weight duplicate of NAV's LCLK) becomes &to 5 — the GAME_PICK entry point. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rdlu
added a commit
that referenced
this pull request
Apr 13, 2026
rdlu
added a commit
that referenced
this pull request
Apr 13, 2026
* Revert "[Draw] feat(keymap): add gaming layers + joystick launcher (closes #11) (#19)" This reverts commit 17fb4b5. * Revert "feat(keymap): add gaming layers + joystick launcher (closes #11) (#19)" This reverts commit 9b81a18. * feat(keymap): revert NAV arrows to HJKL positions (plain kp, no hold-tap) Moves vim-style arrow cluster back to row 2 (H/J/K/L positions) on the NAV layer, accepting the auto-repeat trade-off documented in #5. Arrows use plain &kp bindings — no hold-tap modifiers on the NAV layer. Workspace shortcuts (LG(N1/U/I/N9)) move down to row 3. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
github-actions Bot
pushed a commit
that referenced
this pull request
Apr 13, 2026
#21) * Revert "[Draw] feat(keymap): add gaming layers + joystick launcher (closes #11) (#19)" This reverts commit 17fb4b5. * Revert "feat(keymap): add gaming layers + joystick launcher (closes #11) (#19)" This reverts commit 9b81a18. * feat(keymap): revert NAV arrows to HJKL positions (plain kp, no hold-tap) Moves vim-style arrow cluster back to row 2 (H/J/K/L positions) on the NAV layer, accepting the auto-repeat trade-off documented in #5. Arrows use plain &kp bindings — no hold-tap modifiers on the NAV layer. Workspace shortcuts (LG(N1/U/I/N9)) move down to row 3. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #11.
Summary
Adds 5 new layers —
GAME_PICK(transient launcher) +GAME_MC/GAME_LOL/GAME_DOOM/GAME_CS2— entered from SYS via the joystick center key. The 4-way joystick cluster becomes a launcher: directionals pick a game, center cancels.Design was discussed and locked in #11 (see comments dated 2026-04-11).
What landed
Entry / exit
&mkp LCLK, dead duplicate of NAV's LCLK) →&to 5(GAME_PICK)&noneso a stray press can't escape the picker.0 + 12(top corners), scoped to layers 6-9 →&GAME_EXITmacro (RGB off +&to 0)0 + 5, scoped to layers 6-9 →&to 5Cross-game chassis (identical for all 4 games)
lt 2 DEL) — chat correctionPer-game variant
Only pos 0 differs:
F3(debug screen) on MC,`(console) on LoL/Doom/CS2.The four games stay as separate layers so the OLED
display-nameand the per-game RGB color (green MC / gold LoL / red Doom / blue CS2) make the active mode obvious.RGB feedback
Each game-entry macro chains
&rgb_ug RGB_ON,&rgb_ug RGB_COLOR_HSB(...),&to N. Exit macro chains&rgb_ug RGB_OFF,&to 0.Test plan
mise run drawSVG matches expectationGAME?GAME?, tap joystick UP → OLED showsMINECRFT, RGB underglow turns green0 + 12exits cleanly back to BASE, RGB turns off0 + 5returns to picker without bouncing through BASE🤖 Generated with Claude Code